import Cookie from "js-cookie";
export default {
  namespaced: true,
  state: {
    isCollapse: false, //用与控制菜单是展开还是收起
    //面包屑数据
    tabList: [
      {
        path: "/",
        name: "home",
        label: "首页",
        icon: "s-home",
        url: "Home/Home",
      },
    ],
    //菜单数据
    menu: [],
    isMobile: true,
  },
  actions: {},
  mutations: {
    //修改菜单展开收起的方法
    collapseMenu(state) {
      state.isCollapse = !state.isCollapse;
    },

    //更新面包屑数据
    selectMenu(state, value) {
      // console.log(state, value);
      //判断添加的数据是否为首页
      if (value.name !== "home") {
        const index = state.tabList.findIndex(
          (item) => item.name === value.name
        );
        //如果不存在
        if (index === -1) {
          state.tabList.push(value);
        }
      }
    },

    //删除指定的tag数据
    closeTag(state, item) {
      // console.log(item);
      const index = state.tabList.findIndex((val) => val.name === item.name);
      state.tabList.splice(index, 1);
    },

    //设置menu数据
    setMenu(state, val) {
      state.menu = val;
      Cookie.set("menu", JSON.stringify(val));
    },

    //动态注册路由
    addMenu(state, router) {
      //判断缓存中是否有数据
      if (!Cookie.get("menu")) return;
      const menu = JSON.parse(Cookie.get("menu"));
      state.menu = menu;

      //处理动态路由的数据
      const menuArray = [];
      menu.forEach((item) => {
        if (item.children) {
          item.children = item.children.map((item) => {
            item.component = () => import(`../views/${item.url}`);
            return item;
          });
          menuArray.push(...item.children);
        } else {
          item.component = () => import(`../views/${item.url}`);
          menuArray.push(item);
        }
        console.log(menuArray);

        //路由的动态添加
        menuArray.forEach((item) => {
          router.addRoute("Main", item);
        });
      });
    },
  },
  getters: {},
};
